<?php defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * Processos class
 * @author Thiago Braga <thiago@sitesg.com.br>
 * @copyright 2013 SG Comunicação e Design
 * @license http://www.php.net/license/3_01.txt PHP License 3.01
 * @access private
 */
class Processos extends Model_Controller {

  /**
   * Carrega a aba de Consulta de Processos
   */
  public function index() {
    $this->data->page = 'Processos';
    $this->data->newpage = 'processos/cadastro';
    $this->data->content = 'restrito';
    $this->data->tab = 'processos/consulta';
    $this->data->css = array('mods/restrito');
    $this->data->processos = $this->Processos->select_processos();
    $this->load->view('base', $this->data);
  }

  /**
   * Carrega a aba de Cadastro de Processos
   * @param {Boolean} [$id] ID do processo
   */
  public function cadastro($id = false) {
    $this->data->page = 'Cadastro de Processos';
    $this->data->content = 'restrito';
    $this->data->css = array('mods/restrito');
    $this->data->js = array('mods/processos/cadastro');
    $this->load->model('profissionais_model', 'Profissionais');
    $this->data->profissionais = $this->Profissionais->select_profissionais();
    $this->data->jurisdicao = $this->Processos->select_jurisdicao();
    $this->data->fases = $this->Processos->select_fases();
    if ($id) {
      $this->data->tab = 'processos/visualizacao';
      $this->data->info = $this->data->info_cadastro;
      $this->data->processo = $this->Processos->select_processos($id);
      $this->data->processos_fases = $this->Processos->select_processos_fases($id);
      $this->data->nome_requerente = explode(',', $this->data->processo->nome_requerente);
      $this->data->cpf_requerente = explode(',', $this->data->processo->cpf_requerente);
    } else {
      $this->data->tab = 'processos/cadastro';
      $this->data->info = $this->data->info_edit;
    }
    $this->load->view('base', $this->data);
  }

  /**
   * Salva os dados do processo via ajax
   */
  public function ajax_save() {
    try {
      $required_field = array(
        'numero',
        'ordem',
        'jurisdicao',
        'advogado',
        'valor',
        'proximo_andamento',
        'usuario',
        'cpf_requerido',
        'nome_requerido',
        'endereco_requerido'
      );
      foreach ($required_field as $field)
        if (empty($_POST[$field]))
          throw new Exception("O campo <b>$field</b> é obrigatório.");

      if ($this->Processos->save_processo($this->input->post())) {
        $this->response->type = 'success';
        $this->response->header = 'Processo salvo com sucesso';
        $this->response->message = 'Os dados do processo foram salvos com sucesso.';
      } else {
        $this->response->type = 'warning';
        $this->response->header = 'Erro ao salvar o processo';
        $this->response->message = 'Ocorreu um erro ao salvar o processo. Caso persista o erro, contate o administrador do sistema.';
      }
    } catch (Exception $e) {
      $this->response->type = 'warning';
      $this->response->header = 'Campos inválidos';
      $this->response->message = $e->getMessage();
      $this->response->field = $field;
    }
    echo json_encode($this->response);
  }

  /**
   * Salva os dados do processo via ajax
   */
  public function ajax_fases() {
    try {
      $required_field = array('ocorrencia', 'fase', 'descricao');
      foreach ($required_field as $field)
        if (empty($_POST[$field]))
          throw new Exception("O campo <b>$field</b> é obrigatório.");

      if ($this->Processos->save_fases($this->input->post())) {
        $this->response->type = 'success';
        $this->response->header = 'Fases salva com sucesso';
        $this->response->message = 'As fases do processo foram salvas com sucesso.';
      } else {
        $this->response->type = 'warning';
        $this->response->header = 'Erro ao salvar as fases do processo';
        $this->response->message = 'Ocorreu um erro ao salvar as fases do processo. Caso persista o erro, contate o administrador do sistema.';
      }
    } catch (Exception $e) {
      $this->response->type = 'warning';
      $this->response->header = 'Campos inválidos';
      $this->response->message = $e->getMessage();
      $this->response->field = $field;
    }
    echo json_encode($this->response);
  }

  /**
   * Checa se o CPF informado já está cadastrado
   */
  public function ajax_cpf() {
    $usuario = $this->Processos->check_cpf($_POST['cpf']);
    if ($usuario) {
      $this->response->success = TRUE;
      $this->response->id = $usuario->id;
      $this->response->nome = $usuario->nome;
    }
    echo json_encode($this->response);
  }

}

/* End of file processos.php */
/* Location: ./application/controllers/processos.php */